package com.breakfast.fun.ui.web;

import android.content.Intent;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

import com.breakfast.fun.App;
import com.breakfast.fun.Constant;
import com.breakfast.fun.R;
import com.breakfast.fun.base.BaseActivity;
import com.breakfast.fun.ui.user.recharge.RechargeActivity;
import com.breakfast.fun.ui.user.recharge.rechargemoney.RechargeMoneyFragment;
import com.breakfast.fun.util.JumpUtil;
import com.breakfast.fun.util.SharedUtil;
import com.breakfast.fun.util.T;
import com.breakfast.fun.util.UUIDUtil;
import com.breakfast.fun.util.VersionUtil;
import com.breakfast.fun.view.widget.CustomDialog;
import com.breakfast.fun.view.widget.TitleBarView;
import com.mob.commons.SHARESDK;

import butterknife.Bind;
import cn.sharesdk.framework.Platform;
import cn.sharesdk.framework.ShareSDK;
import cn.sharesdk.onekeyshare.OnekeyShare;
import cn.sharesdk.wechat.friends.Wechat;

public class WebActivity extends BaseActivity<WebPresenter, WebModel> implements WebContract.View {


    @Bind(R.id.tbv_web)
    TitleBarView mTbvWeb;
    @Bind(R.id.wv_web)
    WebView mWvWeb;

    private CustomDialog dialog;
    private WebViewClient webViewClient = new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return super.shouldOverrideUrlLoading(view, url);
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            //页面加载完成了
            //设置页面的标题
            hideLoadingDialog();
        }
    };


    @Override
    public int getLayoutId() {
        return R.layout.activity_web;
    }

    @Override
    public void initView() {
        //允许运行脚本语言
        WebSettings settings = mWvWeb.getSettings();
        settings.setJavaScriptEnabled(true);

        mWvWeb.setWebViewClient(webViewClient);
        mWvWeb.setWebChromeClient(new WebChromeClient());

        String title = getIntent().getStringExtra("title");
        String url = getIntent().getStringExtra("url");
        String des = getIntent().getStringExtra("des");
        Boolean isRecharge = getIntent().getBooleanExtra("recharge", false);

        showWebView(title, url, des, isRecharge);
    }


    @Override
    public void showWebView(String title, String url, String des, Boolean isRecharge) {
        if (isRecharge) {
            mTbvWeb.setDoubleTitle(title, "充值");
            mTbvWeb.setRightTextListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (Constant.getUserData() == null) {
                        T.show("请登录");
                        JumpUtil.toLogin(context);
                        return;
                    }
                    Intent intent = new Intent(WebActivity.this, RechargeActivity.class);
                    RechargeMoneyFragment.isFromWeb = true;
                    startActivity(intent);

                }
            });
        } else {
            if (!des.contains("签到") && !des.contains("抽奖")) {
                mTbvWeb.setDoubleTitle(title, "分享");
                mTbvWeb.setRightTextListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        if (Constant.getUserData() == null) {
                            T.show("请登录");
                            JumpUtil.toLogin(context);
                            return;
                        }

                        if (title.contains("邀请")) {
                            dialog = new CustomDialog(WebActivity.this, R.style.dialog_style,
                                    R.layout.dialog_custom, "邀请提示", "您的邀请码是：" + SharedUtil.getString(context, "recommendCode") + ",邀请好友成功下单既得5元，是否确定邀请好友?", false, false, new View.OnClickListener() {
                                @Override
                                public void onClick(View view) {
                                    dialog.dismiss();
                                    ShareSDK.initSDK(WebActivity.this);
                                    Platform platform = ShareSDK.getPlatform(Wechat.NAME);
                                    showShare(platform.getName());
                                }
                            });
                            dialog.show();
                            return;
                        }
                        showShare(title, url, des);
                    }
                });
            } else {
                mTbvWeb.setTitleNoRight(title);
            }

        }
        mTbvWeb.setBack(this);
        showLoadingDialog(true);
        String appVersion = VersionUtil.getCurrentVersion(App.getAppContext());
        String deviceID = UUIDUtil.id(App.getAppContext());
        String userId = null;
        String mobile = null;
        String cityId = null;
        if (Constant.getUserData() != null) {
            userId = Constant.getUserData().getId() + "";
            mobile = Constant.getUserData().getMobile();
        }
        if (Constant.getCityData() != null) {
            cityId = Constant.getCityData().getId() + "";
        }
        mWvWeb.loadUrl(url + "?appVersion=" + appVersion + "&deviceID="
                + deviceID + "&platform=android" + "&userId="
                + userId + "&mobile=" + mobile + "&cityId=" + cityId);
    }

    private void showShare(String title, String url, String des) {
        ShareSDK.initSDK(this);
        OnekeyShare oks = new OnekeyShare();

        //关闭sso授权
        //oks.disableSSOWhenAuthorize();

        oks.setSilent(true);
// 分享时Notification的图标和文字  2.5.9以后的版本不调用此方法
        //oks.setNotification(R.drawable.ic_launcher, getString(R.string.app_name));
        // title标题，印象笔记、邮箱、信息、微信、人人网和QQ空间使用

        oks.setTitle("早范-一款专门做早餐的app");
        // titleUrl是标题的网络链接，仅在人人网和QQ空间使用
        oks.setTitleUrl("http://m.52letsgo.com/themes/default/saomiao.php");
        // text是分享文本，所有平台都需要这个字段
        oks.setText(des);
        //分享网络图片，新浪微博分享网络图片需要通过审核后申请高级写入接口，否则请注释掉测试新浪微博
        oks.setImageUrl("http://static.52letsgo.cn/zz/ic_share.png");
        /*Uri uri = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://"
                + context.getResources().getResourcePackageName(R.drawable.ic_share) + "/" +
                context.getResources().getResourceTypeName(R.drawable.ic_share) + "/" +
                context.getResources().getResourceEntryName(R.drawable.ic_share));
        oks.setImagePath(uri.getPath());*/
        // imagePath是图片的本地路径，Linked-In以外的平台都支持此参数
        //oks.setImagePath("/sdcard/test.jpg");//确保SDcard下面存在此张图片
        // url仅在微信（包括好友和朋友圈）中使用
        oks.setUrl(url);
        // comment是我对这条分享的评论，仅在人人网和QQ空间使用
        //oks.setComment("我是测试评论文本");
        // site是分享此内容的网站名称，仅在QQ空间使用
        oks.setSite(title);
        // siteUrl是分享此内容的网站地址，仅在QQ空间使用
        oks.setSiteUrl(url);

// 启动分享GUI
        oks.show(this);
    }

    private void showShare(String platform) {
        OnekeyShare oks = new OnekeyShare();

        //关闭sso授权
        //oks.disableSSOWhenAuthorize();

        if (platform != null) {
            oks.setPlatform(platform);
        }

        oks.setSilent(true);
        // 分享时Notification的图标和文字  2.5.9以后的版本不调用此方法
        // oks.setNotification(R.drawable.ic_launcher, getString(R.string.app_name));
        // title标题，印象笔记、邮箱、信息、微信、人人网和QQ空间使用
        oks.setTitle("新用户立享优惠大礼包，早范让吃早餐从将就到讲究");
        // titleUrl是标题的网络链接，仅在人人网和QQ空间使用
        oks.setTitleUrl("http://m.52letsgo.com/themes/default/saomiao.php");
        // text是分享文本，所有平台都需要这个字段
        oks.setText("注册时请输出邀请码：" + SharedUtil.getString(context, "recommendCode") + "\n");
        //分享网络图片，新浪微博分享网络图片需要通过审核后申请高级写入接口，否则请注释掉测试新浪微博
        oks.setImageUrl("http://static.52letsgo.cn/zz/ic_share.png");
        /*Uri uri = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://"
                + context.getResources().getResourcePackageName(R.drawable.ic_share) + "/" +
                context.getResources().getResourceTypeName(R.drawable.ic_share) + "/" +
                context.getResources().getResourceEntryName(R.drawable.ic_share));
        oks.setImagePath(uri.getPath());*/

        // imagePath是图片的本地路径，Linked-In以外的平台都支持此参数
        //oks.setImagePath("/sdcard/test.jpg");//确保SDcard下面存在此张图片
        // url仅在微信（包括好友和朋友圈）中使用
        oks.setUrl("http://m.52letsgo.com/themes/default/saomiao.php");
        // comment是我对这条分享的评论，仅在人人网和QQ空间使用
        //oks.setComment("我是测试评论文本");
        // site是分享此内容的网站名称，仅在QQ空间使用
        oks.setSite("早范邀请码:" + SharedUtil.getString(context, "recommendCode"));
        // siteUrl是分享此内容的网站地址，仅在QQ空间使用
        oks.setSiteUrl("http://m.52letsgo.com/themes/default/saomiao.php");

// 启动分享GUI
        oks.show(this);
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK && mWvWeb.canGoBack()) {
            mWvWeb.goBack();// 返回前一个页面
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

}
